﻿/// Copyright © 2013 Microsoft Corporation. 
/// This project is released under the Microsoft Public License (MS-PL)
///
namespace DataMorph.Common.DataAccess
{
    using System.Collections.Generic;

    using DataMorph.Common.Entities;
    using DataMorph.Common.Storage;

    public interface IDataAccess
    {
        IEnumerable<StorageAccountDetailsModel> GetStorageAccountNames();

        IEnumerable<DataSetEntity> GetDataSets(string accountName);

        void AddDataSet(GenerationParameters generationParameters);

        ICloudStorageAccount GetStorageAccount(string accountName, string accountKey);

        void AddProcessingRecords(IEnumerable<ProcessingRecordEntity> processingRecordEntities);

        IEnumerable<ProcessingRecordEntity> GetProcessingRecordEntities(string storageAccount);

        void AddTagBlobRecord(string dataSetName, string timeRequested, string tagId, string deploymentId, string instanceId, int batchId, string blobUri);
    }
}